package com.project.service;

import com.project.bean.CutPageBean;
import com.project.bean.StudentBean;

import java.time.LocalDate;
import java.util.List;

/**学生业务接口*/
public interface IStudentService {
    /**查询所有学生*/
    public List<StudentBean> findAll();
    /**
     * 根据学生id查询学生
     * @param id 学生id
     * @return 返回学生对象
     */
    public StudentBean findById(int id);

    /**
     * 根据学生姓名模糊查询
     * @param name 学生姓名
     * @return 返回符合条件的学生集合
     */
    public List<StudentBean> findByName(String name);

    /**
     * 添加学生返回学生的id
     * @param stu 要添加的学生对象
     * @return 返回新增学生的id
     */
    public int add(StudentBean stu);

    /**
     * 添加学生集合
     * @param stuList 要添加的学生集合
     */
    public void addList(List<StudentBean> stuList);

    /**根据id删除学生*/
    public void del(int id);

    /**
     * 删除学生数组
     * @param idArray 被选中的学生对象的id数组
     */
    public void delMore(int[] idArray);

    /**根据编号修改学生生日*/
    public void update(int id, LocalDate birthday);

    /**
     * 根据学生姓名，起始生日结束生日日期模糊动态查询学生
     * @param name 姓名
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @return 返回符合条件的学生集合
     */
    public List<StudentBean> findByItem(String name, LocalDate startDate, LocalDate endDate);

    /**
     * 统计学生人数
     * @return 返回学生人数
     */
    public int countStu();

    /**
     * 分页查询所有记录
     * @param pageNo (第几页的)页码
     * @return 返回分页对象
     */
    public CutPageBean<StudentBean> cutAll(int pageNo);

    /**
     * 动态条件分页查询
     * @param pageNo 第几页的页码
     * @param name 姓名
     * @param startDate 起始日期
     * @param endDate 结束日期
     * @return 返回符合条件的分页对象
     */
    public CutPageBean<StudentBean> cutByItem(int pageNo,
                                              String name,
                                              LocalDate startDate,
                                              LocalDate endDate);
}
